<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>What's New in Gmaj</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" href="gmaj.css">
</head>
<body>
<p class=vvlarge>
<h2>What's New in Gmaj</h2>
<p class=vvlarge>
<dl>
<dt><b>2008-Jun-30</b><br>
<dd>	<ul>
	<li>	Gmaj can display several MAF files simultaneously on the same plots,
		e.g. for comparing output from different alignment programs.
	<li>	A new Tags menu allows the user to tag particular blocks for special
		treatment.  Tagged blocks are conceptually separated from their MAFs
		and can be displayed, hidden, or exported as a group.
	<li>	There are many new Export options, including MAF format and exporting
		only the tagged blocks.  Export is now possible in applet mode, by
		posting the blocks to an administrator-designated URL (MAF format only).
		The Export dialog remembers previous selections if you use it repeatedly.
	<li>	The parameters file has a new option <code>skipotherseq</code>, which
		causes MAF sequences that aren't mentioned to be ignored (handy for
		reducing the number of pips and saving memory).
	<li>	Aliases can be given for each <code>seqname</code> in the parameters
		file, e.g. if two MAF files use different names for the same sequence.
	<li>	A new menu item Help - Sequence Summary reports the aligning extents
		for all sequences (useful when fetching/trimming annotation files).
	<li>	The long-standing <i>Scrollbar obscures block buttons</i> bug has been
		fixed, with additional usability enhancements such as remembering
		manual divider placement (click divider to release).
	<li>	Minor fixes and improvements:
		<ul>
		<li>	The <code>reconseq</code> field in the parameters file has been
			renamed to <code>reconorg</code> (because it specifies an organism
			rather than a single sequence); the old <code>reconseq</code>
			keyword is deprecated but still supported for the time being.
			The <code>seqfile</code> keyword from pre-MAF days is no longer
			supported.
		<li>	Tiny mouse drags in plots are assumed to be accidental and treated
			as clicks, to avoid the annoying message "Zoom region can't be
			smaller than ... pixels".
		<li>	Options - Mark Always Red is now the default, due to the
			<a href="gmaj_bugs.html#xor">rendering issue with XOR</a>.
		<li>	The text alignment omits rows below the % identity threshold.
		<li>	The row of block buttons and the position indicator's block list
			only include blocks that are in visible categories (according to
			the new MAF/Tagged checkboxes) and meet the % identity threshold.
		<li>	When self-alignments include the trivial block, it is typically
			very slow to load and manipulate in the text panel due to its
			huge size.  Gmaj requests confirmation before moving the mark to
			any block that covers the entire aligning extent of the reference
			sequence, but then remembers if you say OK and only shows the
			busy cursor thereafter.
		<li>	The bundle file can contain pre-compressed files.
		<li>	Several minor bug fixes and performance enhancements.
<!--
		<li>	Bugfix: some settings and state values were inappropriately shared
			among applet invocations.
		<li>	Bugfix: opening an applet for a pairwise dataset no longer distorts
			the initial multipip size for other applets.
		<li>	Bugfix: the text view must not be scrolled if it's not displayed.
		<li>	Bugfix: race condition when painting "Please wait" dialog is reduced.
-->
		<li>	Improved error checking and messages.
		<li>	Tweaks in wording, punctuation, spacing, dialog title, etc.
		</ul>
	</ul>
<p>
<dt><b>2008-Jan-08</b><br>
<dd>	<ul>
	<li>	Special treatment for pairwise alignments:
		<ul>
		<li>	The dotplot is displayed immediately.
		<li>	Self-alignments are allowed to use the same name for both sequences.
		</ul>
	<li>	Filtering for underlays and highlights, based on score:
		<ul>
		<li>	Scores are obtained from the annotation files.
		<li>	A new text box widget (with keyboard shortcuts) allows you to set the
			display threshold.
		<li>	Pointing at an underlay/highlight displays its score on the location
			status line.
		</ul>
	<li>	The text alignment, headers, and status lines are now selectable for copying,
		and for the text alignment the selection is rectangular.
	<li>	On a Mac, Gmaj uses standard key bindings (<code>Cmd-C</code>,
		<code>Cmd-V</code>, etc.).
	<li>	Holding down the <code>Ctrl</code> key (on any platform) prevents the
		position indicator from changing; this is useful for copying it and for
		screenshots.
	<li>	Bugfixes:
		<ul>
		<li>	Empty fields in annotation files were not accepted due to improper
			handling.
		<li>	When loading a new dataset with File - Open, the old windows were not
			closed properly.
		<li>	Descenders of pip header characters were clipped off.
		</ul>
	<li>	Minor adjustments to behavior, appearance, and messages, including:
		<ul>
		<li>	Sequence names in the MAF cannot end with <code>~</code> (which is used
			internally for self-alignments).
		<li>	The first click in an inactive window just activates it.
		</ul>
	<li>	Updated and enhanced documentation.
	</ul>
<p>
<dt><b>2007-Jul-26</b><br>
<dd>	<ul>
	<li>	Gmaj can now display dotplots in addition to the main multi-pip views,
		with color underlays for both sequences.
		<ul>
		<li>	Dotplots are opened by clicking on buttons in the pip headers.
		<li>	Each dotplot opens in a separate window, similar to the multi-pip
			view except it has pip, dotplot, and text panels for two sequences
			only.
		<li>	Dotplot windows share the same reference sequence and mark with
			their parent multi-pip window but have independent zoom, and close
			automatically when the parent does.
		<li>	There is only one mark for each reference sequence, so the circle
			will not appear in dotplots having a different secondary sequence
			than the mark.
		</ul>
	<li>	Gmaj can now read annotation data in
		<a href="http://www.sanger.ac.uk/Software/formats/GFF/GFF_Spec.shtml"
		>GFF</a> (v1 & v2),
		<a href="http://genome.ucsc.edu/goldenPath/help/hgTracksHelp.html#GTF"
		>GTF</a>, and
		<a href="http://genome.ucsc.edu/goldenPath/help/hgTracksHelp.html#BED"
		>BED</a> formats in addition to its previous PipMaker-style formats.
		<ul>
		<li>	UCSC
			<a href="http://genome.ucsc.edu/goldenPath/help/hgTracksHelp.html#CustomTracks"
			>custom track</a> headers are supported, with multiple tracks and
			sequence names allowed in a single file.
		<li>	There is currently no way to use just one particular track from a
			file, but lines in
			<a href="http://genome.ucsc.edu/goldenPath/help/wiggle.html"
			>WIG</a> or other unrecognized formats are skipped.
		<li>	Files in these generic formats can be reused in multiple panels
			(e.g. as both exons and underlays).
		<li>	A new <code>tabext</code> field and file specification modifiers
			(seqname alias and type hint) in the parameters file facilitate
			interpretation of these formats.
		<li>	Colors can be specified using UCSC-style RGB triplets (either
			per-line or per-track), or Gmaj provides defaults.
		<li>	Currently there is no special support for multiple transcripts;
			when inferring UTRs, the largest bounding range of given CDS data
			is used.
		</ul>
	<li>	A new control in the menu bar allows the user to limit the displayed
		alignments by their average % identity.
		<ul>
		<li>	Keyboard shortcuts make it easy to move the threshold up and down.
		<li>	The value for the current plot block is displayed with the mark
			information when applicable.
		</ul>
	<li>	If the alignment file contains per-nucleotide reconstruction scores
		for an inferred ancestral sequence, they can be displayed as a pair of
		bar graphs, binned according to the current zoom region and panel size.
		<ul>
		<li>	The scores are transformed via simple linear scaling, and should
			not be interpreted as probabilities.
		<li>	A new <code>reconseq</code> field in the parameters file
			identifies the organism for the scores.
		</ul>
	<li>	Miscellaneous:
		<ul>
		<li>	"Unsupported MAF version" is now a warning instead of a fatal
			error.
		<li>	A new <code>nowarn</code> field in the parameters file suppresses
			certain warnings/errors using a keyword shown in the message.
		<li>	When opening a new window, the current zoom is translated to a
			roughly equivalent one in the new sequence(s).
		<li>	Sequence choices in the Show dialog affect text rows and dotplots
			in addition to pips.
		<li>	The default highlights built from exons now include the genes
			(light yellow).
		<li>	The divider between the position indicator and the zoom indicator
			is draggable.
		<li>	Plot segments are drawn thicker in Large Fonts mode.
		<li>	Plots that are completely empty have a gray background.
		<li>	The Set Zoom dialog accepts a blank box to mean "leave unchanged".
		<li>	Tabbing is easier in input dialogs: labels are skipped unless the
			mouse is pointing at them.
		<li>	Note that "<code>=</code>" is now required for settings in the
			parameters file (except <code>seq&nbsp;N:</code> lines), and
			lines with empty values (e.g. unused template items) are allowed
			and skipped.
		</ul>
<!--
	<li>	Bug fixes:
		<ul>
		<li>	Linkbar URLs are supposed to be optional; missing ones are now
			handled gracefully.
		<li>	Entries in the parameters file for particular-pip underlays were
			not recognized properly if the underlay file was bundled.
		<li>	Attempting to display a reference sequence that had no alignments
			would cause a Java error.
		<li>	On some platforms, rebuilding all of the Gmaj windows (e.g. when
			Options settings were changed) would leave the keyboard focus in
			the wrong window.
		</ul>
-->
	<li>	Various minor bug fixes, and improvements in appearance, behavior,
		messages, efficiency, and robustness.
	<li>	Updated documentation.
		<ul>
		<li>	Terminology: the optional colored clickable bars located above
			the exons panel were formerly called "annotations", "annotation
			links", or "hyperlink annotations", but are now referred to as
			"linkbars" so that "annotation" can be used in the general sense.
		</ul>
	</ul>
<p>
<dt><b>2006-Jun-17</b><br>
<dd>	<ul>
	<li>	Gmaj can now be deployed as a web-based applet, as an alternative to
		the regular stand-alone mode.
		&nbsp;<a href="http://globin.bx.psu.edu/java/gmaj/demo.html">Demo</a>
		<ul>
		<li>	New parameters <code>bundle</code>, <code>initzoom</code>, and
			<code>urlpause</code> facilitate applet use, but also work in
			stand-alone mode.
		<li>	Clicking on hyperlinked annotations (colored bars) visits the
			referenced site (or in stand-alone mode, displays the url).
		<li>	A new "Help - Manual" menu item visits a help page (or in
			stand-alone mode, displays the file location).
		<li>	The "File - Export" feature does not work yet for applets.
		</ul>
	<li>	Better conformance with the official UCSC specs for MAF format.
	<li>	A new <code>refseq</code> field in the parameters file can be used
		to prevent selection of an inappropriate reference sequence when the
		alignments are not sequence-symmetric (e.g. from <i>multiz</i>).
	<li>	Maximum zoom bounds are now the stated sequence length from the MAF
		file (not just the extent of the blocks), but the default initial
		view zooms to the aligned portion.
	<li>	Search rules for relative filenames have been simplified, and Windows
		names starting with "<code>\</code>" are now handled better.
	<li>	The panel for hyperlinked annotations is now labeled, and it displays
		the bars listed earliest in the file toward the top.
	<li>	Colors for underlays and other annotations have been adjusted slightly.
	<li>	The "Help - About" message now shows your current Java version and
		vendor.
	<li>	Improved error reporting.
	<li>	Message dialogs have better line wrapping, and their contents can
		be copied to the system clipboard (except in applets, due to a bug
		in Java).
	<li>	Several minor bug fixes, tweaks, and internal improvements.
	<li>	Documentation has been reorganized.
	</ul>
<p>
<dt><b>2006-Feb-08</b><br>
<dd>	<ul>
	<li>	New arrow buttons slide the zoom region left or right by half a
		screenful.
	<li>	The schematic diagrams for exons and repeats are now displayed in
		separate, labeled panels.
	<li>	A new Show dialog on the Options menu allows individual panels
		to be displayed or hidden.
	<li>	Users who have a one-button mouse can get crosshairs by using the
		<code>Shift</code> key.
	<li>	Minor aesthetic tweaks.
	</ul>
<p>
<dt><b>2005-Nov-20</b><br>
<dd>	<ul>
	<li>	New export feature: Gmaj can now save the selected block (or all
		blocks in the current zoom region) to files in FastA sequence format
		for further processing by other programs.  Options include clipping
		the sequences to the current zoom region, and restoring those that
		align in reverse complement to their original orientation.
	<li>	The zoom resolution limit has been reduced to 4 bp (or pixels),
		instead of 10.
	<li>	When setting the zoom by dragging out a rectangle, Gmaj will display
		an error message if the rectangle is too small (instead of beeping).
	</ul>
<p>
<dt><b>2005-Sep-30</b><br>
<dd>	<ul>
	<li>	Improved handling of <code>X</code>, <code>N</code>, and
		unrecognized characters:
		<ul>
		<li>	Bug fix: the percent identity computation now ignores these
			characters (in both numerator and denominator).
		<li>	Bug fix: the text panel never shows dots for these characters.
		<li>	One warning is issued for each unrecognized character.
		</ul>
	<li>	New zoom features:
		<ul>
		<li>	Gmaj keeps track of your zoom history for each window, so you can
			move back and forward through your previous zoom regions.  A fresh
			selection discards the history from the current point forward,
			similar to a web browser.
		<li>	The Unzoom facility does not go back, it just puts the maximum
			range into the history as a fresh selection.
		<li>	A new indicator box below the menu bar shows the current zoom
			endpoints.
		<li>	A Set Zoom dialog allows you to enter zoom endpoints explicitly.
		<li>	When setting the zoom by dragging out a rectangle, a rectangle that
			is too small will no longer be treated as a click; instead Gmaj
			will beep (if possible).
		</ul>
	<li>	Improved display of pip and text panels:
		<ul>
		<li>	The divider between the pips and the text panel is now moveable, so
			you can drag it to adjust the relative space they occupy.
		<li>	The text panel starts with an initial message to explain why it is
			empty.
		<li>	After loading a file with many sequences, the pips will be scrolled
			to start at the top.
		<li>	If the current mark can be transferred when selecting a new
			reference sequence, the pip panel will scroll to it (though the red
			circle may not be visible if the percent identity at that point is
			below 50%).
		<li>	Vertical blue bars at the edges of the pips represent the
			boundaries of the current zoom region.
		</ul>
	<li>	Improved display of block buttons:
		<ul>
		<li>	If there are too many block buttons to fit in their panel, a
			scrollbar will appear so all of them can be accessed.
		<li>	The divider between the mark indicator and the block buttons is now
			moveable, so you can drag it to adjust the relative space they
			occupy (this will reset when a new block is selected, since the
			number of block buttons will likely be different).
		</ul>
	<li>	Miscellaneous:
		<ul>
		<li>	The menus have been rearranged slightly, and Settings has been
			renamed to Options.
		<li>	The keyboard shortcut for "Next Block" has been changed to
			"<code>n</code>", so "<code>b</code>" can invoke "Zoom - Back".
		<li>	The cascade of RefSequence window positions wraps around the screen
			(in both width and height) so they are never placed completely
			offscreen.
		<li>	When opening a new RefSequence window, Gmaj will use the size of
			the current window in case you have changed it.
		<li>	Window sizing no longer requires Java 1.4 (accidentally introduced
			in the 2005-May-16 release).
		<li>	Bug fix: radio buttons for mark color now take effect immediately
			in all windows.
		<li>	Improved behavior of dialog boxes: pressing Enter invokes "Ok",
			Escape invokes "Cancel", and the cursor begins in the first text
			box.
		</ul>
	</ul>
<p>
<dt><b>2005-Sep-13</b><br>
<dd>	<ul>
	<li>	<i>IMPORTANT BUG FIX:</i>&nbsp; Percent identities for the pip plots
		were being computed in a case-sensitive fashion, which lowered the
		scores when comparing soft-masked vs. unmasked sequences.  (This bug
		did not affect the text view, just the pips.  Nor did it affect
		<a href="http://globin.bx.psu.edu/dist/laj/">Laj</a>, which uses
		pre-computed percent identity scores from the <code>lav</code> file.)
		Note that hard masking and ambiguous nucleotides (<code>X</code>,
		<code>N</code>, <code>W</code>, <code>R</code>, etc.) are still treated
		literally.
	</ul>
<p>
<dt><b>2005-Aug-26</b><br>
<dd>	<ul>
	<li>	Improved support for working with overlapping blocks (e.g. those due to
		genomic duplications):
		<ul>
		<li>	A list of block numbers in the position indicator line shows the
			blocks covering the mouse pointer's location.
		<li>	A row of buttons next to the mark indicator line shows the blocks
			covering the marked location, and allows convenient selection of
			a different block at the same position.
		<li>	The pip segments for the currently selected block are painted last,
			so the red segments are not hidden by other blocks.
		</ul>
	<li>	It is no longer required to list every sequence in the parameters file.
		Any sequences that appear in the alignment but are not mentioned in the
		parameters file will be displayed in the order they are encountered
		(filling in around any sequence numbers explicitly assigned in the
		parameters file).
	<li>	A new parameter <code>underlays</code> (plain, without a number) can be
		used to specify a default underlay file for each reference sequence, so
		it is no longer necessary to list underlays for each pip separately when
		they are the same.  The old <code>underlays.N</code> parameters are
		still supported as well, and override these new ones.
	<li>	The <code>seqfile</code> parameter has been renamed to
		<code>seqname</code>, in order to reflect MAF semantics (but
		<code>seqfile</code> is still supported for backward compatibility).
	<li>	Sequence label widths are now computed dynamically, based on the longest
		name and the current font.
	<li>	When the font size is changed, pip heights are also adjusted.
	<li>	A new option on the Settings menu makes the mark circle and selected
		block's pip segments always red, instead of changing with the background.
	<li>	A new color <code>Clear</code> is provided, which is colorless and
		transparent.  It is intended for gene introns, so the same file can be
		used for pip underlays (white background) and text highlights (gray
		background).
	<li>	New colors <code>Brown</code> and <code>LightBrown</code> have also been
		added, and <code>LightRed</code> and <code>Green</code> were tweaked.
	<li>	When a gap in the text view is clicked, the nearest gap-free position
		is selected (up or down, instead of always down).
	<li>	Work-arounds for a few display problems in JRE 1.5 have been added.
	<li>	The RefSeq menu has been renamed to "RefSequence" in order to avoid
		confusion with the NCBI database.
	<li>	The jar manifest and About information have been updated.
	<li>	Support for alignment files in <code>.bb</code> format (from the old
		<i>blockbuilder</i> program) has been discontinued.  The only alignment
		format currently supported is MAF.
	<li>	Due to a new mechanism for registering keyboard shortcuts, Gmaj now
		requires <b>Java 1.3 or higher</b>.
	<li>	This version should still be considered <b>beta quality</b>; please
		report any bugs to
		&nbsp;<img align=top alt="image of email address" src="cathy.gmaj.png">.
	</ul>
<p>
<dt><b>2005-May-16</b><br>
<dd>	<ul>
	<li>	Gmaj can now handle a wider variety of MAF files, including those
		containing reverse-complement alignments.
	<li>	The "proper threading" requirement has been eliminated.
	<li>	Dynamic memory management for plot and underlay data allows larger files
		to be viewed.
	<li>	The pip section is now scrollable when there are many sequences.
	<li>	Rows in the text alignment are sorted to match the order of pips.
	<li>	This release should be considered <b>beta quality</b>.  In particular,
		the numbering for reverse-complement alignments has not been thoroughly
		tested.
	</ul>
<p>
<dt><b>2004-Mar-12</b><br>
<dd>	<ul>
	<li>	A new Settings menu allows the user to choose between two sizes of fonts
		and associated settings.
	<li>	Initial window positions are cascaded according to reference sequence.
	<li>	The usage message has been adjusted to show the full command syntax,
		instead of our local wrapper script shortcut.
	<li>	Empty alignment files are handled more gracefully.
	<li>	Minor aesthetic tweaks.
	</ul>
<p>
<dt><b>2004-Jan-14</b><br>
<dd>	<ul>
	<li>	Gmaj normally expects that the alignment data will be properly
		<i>chained</i>, i.e., that for each sequence it is possible to order
		the blocks so that every nucleotide from that sequence in the interval
		<code>[1,length]</code> appears exactly once, and in the same order as
		the original sequence.  (Note that MAF files are 0-based, so
		<code>+1</code> is added to all MAF coordinates to convert them to
		Gmaj's 1-based system.)
		However, sometimes you may want to use Gmaj to display a subset of such
		data (e.g., output from the <i>slice_maf</i> program).  Gmaj can now
		handle input data where the chain starts after position <code>1</code>
		and/or ends before position <code>length</code>, as long as it is still
		contiguous.  In this case Gmaj will issue a warning message, but will
		proceed to use the actual interval it found in your file for threading
		the blocks, instead of the usual <code>[1,length]</code>.
	</ul>
<p>
<dt><b>2003-Sep-16</b><br>
<dd>	<ul>
	<li>	Gmaj can now handle alignment files in the MAF format produced by
		the <i>TBA</i> program, in addition to the <code>.bb</code> format
		produced by <i>blockbuilder</i>.
	<li>	When using a MAF alignment, the semantics of the parameters file
		are a bit different, and its rules are stricter.  (See
		<code><a href="sample.gmaj">sample.gmaj</a></code> for details.)
	<li>	Gmaj still doesn't support reverse complement alignments, or multiple
		contigs per sequence.
	</ul>
<p>
<dt><b>2003-Jul-14</b><br>
<dd>	<ul>
	<li>	The "phantom repeats" phenomenon that was occurring with Java 1.4.x
		has been greatly reduced, but not completely eliminated.  It appears
		to be due to a clipping problem involving integer overflow, so that
		items which should be off-screen are drawn anyway.  This (or a related
		bug) may also manifest as the disappearance of items for certain zoom
		windows.  These problems can also occur with items other than repeats,
		such as underlays and even pip segments, though this is less common.
		Manual clipping seems to solve the problem, and this release of Gmaj
		should always display pip segments, underlays, and annotation bars
		correctly.  Items in the "features" panel (exons, repeats, CpG islands,
		etc.) are more difficult to clip manually, but a first approximation
		has helped quite a bit.  It is still possible to experience these
		problems if you zoom in very closely on a long feature.
		<p>
	<li>	If underlay labels are not provided but "kinds" (color meanings) are,
		then Gmaj will use the kind as a default label, but only for the
		underlay bands that are on top (i.e., not obscured by another band).
	</ul>
<p>
<dt><b>2003-Apr-10</b><br>
<dd>	<ul>
	<li>	Fixed keyboard shortcuts, and failure to exit upon closing last
		window.
	<li>	New Help - Keys menu item lists keyboard shortcuts.
	<li>	Tweak appearance of the Unzoom button.
	<li>	Minor clarifications in documentation.
	</ul>
<p>
<dt><b>2003-Apr-07</b><br>
<dd>	<ul>
	<li>	Fixed several bugs in the text panel, including scrolling
		behavior and cursor display.
	<li>	Added a comment in the <code>sample.gmaj</code> file regarding
		the <code>#:gmaj</code> tag.
	</ul>
<p>
<dt><b>2003-Mar-31</b><br>
<dd>	<ul>
	<li>	Preliminary beta-quality release.  Still has a few display
		and behavior anomalies, and possibly other minor bugs.
	</ul>
</dl>
<p>

<p class=vvlarge>
<hr>
<i>Cathy Riemer, June 2008</i>
</body>
</html>
